﻿using System;
using System.Collections.Generic;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using StructureModelDeduction.Data;

namespace StructureModelDeduction.Kit
{
	public abstract class IntersectionInformGetter
	{
		public List<ElementDataPack> lstDeduction
		{
			get
			{
				return this.m_lstDeduction;
			}
		}

		public List<ElementDataPack> lstDisplay
		{
			get
			{
				return this.m_lstDisPlay;
			}
		}

		public ElementDataPack ElementData
		{
			get
			{
				return this.elementData;
			}
			set
			{
				this.elementData = value;
			}
		}

		public IntersectionInformGetter(Document doc, ElementDataPack elemData, ExternalCommandData cmdData)
		{
			this.m_cmdData = cmdData;
			this.m_Doc = doc;
			this.ElementData = elemData;
			this.m_lstCurrentId = new List<ElementId>();
		}

		public abstract int CheckRelationType();

		public abstract void CheckRalationTypeSingleCouple(List<Curve> lstLinkDocElemCurve, ElementDataPack CurrentDocElemData);

		public abstract int GetElementInterSecByLinkSolid();

		protected Document m_Doc;

		private ElementDataPack elementData;

		protected List<ElementId> m_lstCurrentId;

		protected List<ElementDataPack> m_lstDeduction = new List<ElementDataPack>();

		protected List<ElementDataPack> m_lstDisPlay = new List<ElementDataPack>();

		protected ExternalCommandData m_cmdData;
	}
}
